package cn.kgc.mybatis;

/**
 *  javaWeb    servlet+ jsp   mvc分层思想
 *  控制层   servlet
 *  业务层   service
 *  持久层   dao
 *
 *  interface  UserDao   -> UserDaoImpl   编写具体的数据操作  crud
 *  UserDaoImpl crud   jdbc
 *  jdbc操作数据库的步骤
 *  1. 导包
 *  2. 注册驱动
 *  3.获取连接
 *  4.获取执行sql语句的对象
 *  5.发送sql 处理结果集
 *  6. 释放资源
 *
 * 传统jdbc操作存在的不足:
 * 1. 获取连接过程繁琐    -> JDBCUtil
 * 2. 结果集处理不方便    commons-dbutils.jar
 * 3. 释放资源  connection   statement  resultSet   ->   JDBCUtil
 * 4. 搜索的业务 student  studentNo  studentName    动态sql
 *
 *    select *  from student
 *    select *  from student where   studentNo = ?
 *    select *  from student where   studentName = ?
 *    select *  from student where   studentName = ? and studentNo = ?
 *
 *    动态sql
 *    String sql = "select *  from student where 1=1 "
 *    ArrayList  params = new ArrayList()
 *    if(studentNo!=null){
 *        sql+=" and  studentNo = ? "
 *        params.add(studentNo)
 *    }
 *
 *    if(studentName!=null){
 *          sql+=" and studentName = ?"
 *            params.add(studentName)
 *     }
 *
 *   // 遍历集合设置参数
 *
 *   excute(sql)
 *
 *  5. 缓存    减轻数据库服务器的压力
 *    A :  select  *  from  student    缓存
 *    B :  select  *  from  student    缓存
 *
 *    ....
 *  6.  java代码和sql语句耦合
 *
 *    mybatis框架可以很好的解决以上分析的问题   持久层框架

 */
public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
